//
//  CZStatusListViewModel.swift
//  WHWeiBo01
//
//  Created by whitcast on 16/7/13.
//  Copyright © 2016年 itcast. All rights reserved.
//

import UIKit
//  这个ViewModel对应视图是首页的TableView
class CZStatusListViewModel: NSObject {
    //  微博数据源
    lazy var statusList: [CZStatusViewModel] = [CZStatusViewModel]()
    
    //  加载微博数据
    func loadStatus(isPullUp: Bool, callBack: (isSuccess: Bool, message: String)->()) {
        
        //  上拉加载默认值0
        var maxId: Int64 = 0
        var sinceId: Int64 = 0
        if isPullUp {
            //  获取数组里面最后一个微博元素的微博id
            maxId = statusList.last?.status?.id ?? 0
            //  防止获取重复的数据,我们对其微博id减1
            if maxId > 0 {
                maxId -= 1
            }
        } else {
            //  获取数组里面的第一个微博元素的微博id
            sinceId = statusList.first?.status?.id ?? 0
        }
        
        
        
        var message = "没有加载到最新微博数据"
        
        CZStatusDAL.loadData(maxId, sinceId: sinceId) { (statusDicArray) -> () in
            
//        }
//        
//        
//        CZNetworkTools.sharedToos.loadStatus(maxId, sinceId: sinceId) { (response, error) -> () in
//            if error != nil {
//                print(error)
//                callBack(isSuccess: false, message: message)
//                return
//            }
//            //  代码执行到此,是成功的回调
//            
//            guard let dic = response as? [String: AnyObject] else {
//                print("不是一个正确的字典格式")
//                callBack(isSuccess: false, message: message)
//                return
//            }
//            
//            //  代码执行到此字典格式正确
//            
//            guard let statusDicArray = dic["statuses"] as? [[String: AnyObject]] else {
//                print("不是一个正确的字典格式")
//                callBack(isSuccess: false, message: message)
//                return
//            }
//            //  缓存到本地数据
//            CZStatusDAL.cacheData(statusDicArray)
//            
            
            //  遍历数组完成字典转模型
            var tempArray = [CZStatusViewModel]()
            for statusDic in statusDicArray {
                
                let status = CZStatus(dic: statusDic)
                //  初始化ViewModel通过我们的微博模型
                let statusViewModel = CZStatusViewModel(status: status)
                tempArray.append(statusViewModel)
            }
            //  设置数据
//            self.statusList = tempArray
            //  追加数组元素
            if isPullUp {
                //  上拉加载更多
                self.statusList.appendContentsOf(tempArray)
            } else {
                //  下拉刷新,最新数据在前面
                //self.statusList = tempArray + self.statusList
                self.statusList.insertContentsOf(tempArray, at: 0)
            }
            //  判断服务端的数据是否大于0
            if tempArray.count > 0 {
                message = "加载了\(tempArray.count)条微博数据"
            }
            
            //  刷新数据
//            self.tableView.reloadData()
//            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (Int64)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), { () -> Void in
//                
//            })
            callBack(isSuccess: true, message: message)
        
        }
    }
    
}
